Introducción al software de análisis

Residencia de Epidemiología

Paquetes estadísticos / softwares de análisis


Existen numerosos paquetes y lenguajes estadísticos actualmente disposición. Algunos privativos con licencias de alto costo y otros gratuitos y open source (fuente abierta).

Entre ellos podemos mencionar: SPSS, Stata, SAS, EpiDat, EpiInfo, lenguaje R, etc.


El lenguaje R es la herramienta con la que vamos a trabajar durante la formación de la Residencia y pertenece al grupo de interfaz por línea de comando (como todo lenguaje de programación).

Tipo de interfaz


Existen dos grandes grupos de softwares en función de sus interfaces: GUI (Graphical User Interface) y CLI (Command Line Interface).

  • GUI: curva de aprendizaje inicial muy rápida. Luego pierde capacidad de realizar tareas nuevas.

  • CLI: curva de aprendizaje lenta inicialmente, a largo plazo las posibilidades de combinar y automatizar procesos permite una versatilidad mucho mayor y por lo tanto un mayor potencial creativo.

Abordaje interdisciplinario: 3 dimensiones

Lenguaje R


El sitio oficial del lenguaje dice que:

“R es un entorno de software libre para gráficos y computación estadística.

Se compila y se ejecuta en una amplia variedad de plataformas UNIX, Windows y MacOS.”


Profundizando en su descripción podemos decir, más técnicamente, que:

es un lenguaje de programación interpretado, orientado a objetos, multiplataforma y open source pensado para el manejo de datos estadísticos.

Por lo tanto

…es un lenguaje de programación estadístico

Básicamente es un lenguaje de programación, con sus estructuras y reglas de sintaxis, que posee una gran variedad de funciones desarrolladas para estadística y otras librerías con diversas aplicaciones.

…es un lenguaje Orientado a Objetos

Implementa los conceptos de la programación orientada a objetos y esto le otorga simpleza y flexibilidad en el manejo de datos.

…es un lenguaje interpretado

No es necesario compilar el código para construir ejecutables sino que directamente se ejecuta por medio del intérprete que el software instala.

…es multiplataforma

Se puede instalar en diferentes sistemas operativos como Linux, Windows y Mac.

…es Open Source y se distribuye bajo licencia GNU - GPL

Se distribuye gratuitamente bajo licencia GNU (General Public License) – GPL y que los usuarios tienen la libertad de usar, estudiar, compartir (copiar) y modificar el software.

Historia


R es un lenguaje que fue desarrollado a partir del lenguaje S que a su vez tiene sus orígenes en Bell Labs de la AT&T (actualmente Lucent Technologies) de mediados de la década del ’70. Posteriormente, S fue vendido y dio origen a una versión propietaria denominada S-Plus que es comercializada por Insighful Corporation.


En 1995 dos profesores de estadística de la Universidad de Auckland, en Nueva Zelanda (Ross Ihaka y Robert Gentleman, iniciaron el “Proyecto R”, con la intención de desarrollar un programa estadístico inspirado en el lenguaje S pero de dominio público.


Funcionamiento

Usuarios del lenguaje y enfoque “comunicativo”

  • Plantea abordar el lenguaje R como un lenguaje para “comunicarse” (similar a un segundo lenguaje como el inglés, francés, etc.)

  • Al dotar a R de una estructura particular semántica, gramatical y sintáctica.

  • Se busca comenzar a “decir cosas con datos” y luego profundizar en las estructuras del lenguaje.

  • Diferencias entre ser “usuario” y “programador”

  • Propuesto por Riva Quiroga de LatinR en el encuentro global de RStudio de 2021. Para profundizar ver ponencia “How to do things with words: Learning to program with a ‘communicative approach’” en rstudio::global(2021)

R es un lenguaje de funciones (y argumentos)

Una función es un bloque de código que sólo se ejecuta cuando se llama.

  • Existen funciones que forman parte de la base del lenguaje y otras que estan empaquetadas en librerías.

  • Todas las funciones devuelven algo. Datos, un resultado o una acción determinada.

  • La mayoría necesitan de ciertos datos que se declaran dentro de la función denominados argumentos. Algunos son obligatorios y otros opcionales.

  • Toda función se escribe con una sintaxis precisa y finaliza siempre con paréntesis. Los argumentos se separan por comas.

Paquetes de R

  • Paquete es sinónimo de librería y contiene una serie de funciones y/o datos con su documentación.

  • El conjunto base de R tiene varias funciones fundamentales contenidas en algunos paquetes (base, stats, utils, graphics, methods, etc)

  • Los paquetes se instalan, activan y desactivan. El sitio oficial donde se publican se encuentra en CRAN - packages

  • Visto como un lenguaje (idioma) los paquetes vendrían a ser conjuntos de palabras que “agregamos” a nuestro vocabulario para poder “comunicarnos” mejor o más fácilmente con el interprete de R.

Tidyverse

Una colección de paquetes de R modernos, que comparten una gramática y filosofía común, diseñados para resolver los desafíos de la ciencia de datos.

Fundamentos

  • Estructura ordenada de datos (tidy)

    • Cada variable es una columna de la tabla de datos

    • Cada observación es una fila de la tabla de datos

    • Cada tabla responde a una unidad observacional

  • Principios básicos

    • Reutilizar las estructuras de datos mediante el uso de tuberías

    • Resolver problemas complejos combinando varias piezas sencillas

    • Diseño para humanos incorporando una gramática específica al lenguaje (que ya posee una sintaxis estricta y una semantica que le otorga significado)

Tuberías


Las tuberías son operadores que permiten “canalizar” un objeto hacia una función o llamar a una expresión, lo que le permite expresar una secuencia de operaciones que transforman un objeto.


Existen dos tuberías conocidas:

%>% perteneciente al paquete magrittr del tidyverse

|> que es la propuesta nativa de R base a partir de la versión 4.1.0

La mayoría de los scripts del curso muestran la tubería nativa, pero se puede utilizar cualquiera de las dos.

Tuberías

Para el uso general, la utilización de las dos tuberías es la misma, es decir que la forma simple de las tuberías inserta el lado izquierdo como primer argumento en la llamada del lado derecho.

Esto posibilita la reutilización de las estructuras de datos y la escritura de porciones de código similares a “oraciones” de un párrafo.

Pulse aquí para ver algunas caracteristicas comparativas de estas tuberías.

Estructura de datos


Las estructuras de datos son los objetos contenedores de datos que el lenguaje ofrece.

Existe una variedad de estructuras de datos: vectores, matrices, arrays, dataframes, listas, etc.

Vamos a describir a las más relevantes dentro del ecosistema tidyverse y que serviran en estos inicios del curso: Los vectores y los dataframes.

Vectores

  • Son secuencias de elementos del mismo tipo de datos.

  • Tienen dos atributos principales: longitud y tipo de datos.

  • Los 6 tipos de datos que usaremos en R son:

    1. logical (TRUE - FALSE)
    2. integer (15)
    3. double (24.64)
    4. character ("Hola")
    5. factors ("Si" - "No" - "Ns/Nc")
    6. date/datetime ("2023-10-09" - "2023-10-09 01:00:00")
  • Los vectores integer y double se conocen como vectores numéricos (numeric).

Dataframes


  • Un dataframe, que se traduce como marco de datos, es similar a una tabla de datos construida por una colección de vectores ubicados verticalmente que mantienen la integridad de sus filas.

  • Tienen dos dimensiones, las columnas verticales llamadas variables y las filas horizontales llamadas observaciones.

  • Las columnas pueden ser de diferentes tipos, pero todas las filas de cada columna pueden tener un mismo tipo de dato.

  • La combinación de datos de las diferentes columnas que conforman una fila es fija, por lo que se asegura la integridad de estas observaciones (principio de las bases de datos).


Tibbles


  • Los tibbles son una versión moderna del dataframe que introduce tidyverse.

  • Tienen las mismas características que un dataframe normal con algunos atributos más agradables.

  • Cuando importemos tablas de datos, estos se almacenarán como dataframes/tibbles.

  • Dado que estamos centrados en tidyverse, utilizaremos los términos dataframe y tibble como sinónimos entre sí para su uso general.

  • Los dataframes/tibbles son el tipo de datos fundamental en la mayoría de los análisis que llevaremos adelante.

Archivos de datos

  • El formato de archivos de datos estándar y universal es el texto plano separado por comas (archivos csv)

  • Estas tablas de datos tienen las variables ubicadas en las columnas y las observaciones en las filas.

  • El objeto al que asignemos la importación de estos archivos siempre será un dataframe/tibble.

  • Otro formato de datos propio de R es .RData, que permite guardar varios objetos del lenguaje (vectores, dataframes, etc.) simultáneamente. Es como almacenar el entorno de trabajo completo.

Errores y advertencias

Ayuda

  • Todas las funciones del R base o de los paquetes vienen acompañadas con su respectiva documentación.

  • Esta documentación se puede visualizar en el panel Help de RStudio navegando como si fuese un navegador web.

  • La documentación tiene una estructura que se repite: descripción, uso, argumentos, detalles, valores, ejemplos.

  • También se pueden hacer busquedas en buscadores web como Google, foros especializados, como por ejemplo Stack Overflow o Rpubs, canales de slack y más recientemente en IAs como chatGPT o Google Gemini.